/**
 * Created by tanbingqin on 2020/4/20.
 */
export const enConf = {
  months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  longDateFormat : {
    LT : 'h:mm A',
    LTS : 'h:mm:ss A',
    L : 'DD/MM/YYYY',
    LL : 'D MMMM YYYY',
    LLL : 'D MMMM YYYY h:mm A',
    LLLL : 'dddd, D MMMM YYYY h:mm A'
  },
  calendar : {
    sameDay : '[Today at] LT',
    nextDay : '[Tomorrow at] LT',
    nextWeek : 'dddd [at] LT',
    lastDay : '[Yesterday at] LT',
    lastWeek : '[Last] dddd [at] LT',
    sameElse : 'L'
  },
  relativeTime : {
    future : 'in %s',
    past : '%s ago',
    s : 'a few seconds',
    ss : '%d seconds',
    m : 'a minute',
    mm : '%d minutes',
    h : 'an hour',
    hh : '%d hours',
    d : 'a day',
    dd : '%d days',
    M : 'a month',
    MM : '%d months',
    y : 'a year',
    yy : '%d years'
  },
  dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
  ordinal : function (number) {
    var b = number % 10,
      output = (~~(number % 100 / 10) === 1) ? 'th' :
        (b === 1) ? 'st' :
          (b === 2) ? 'nd' :
            (b === 3) ? 'rd' : 'th';
    return number + output;
  },
  week : {
    dow : 1, // Monday is the first day of the week.
    doy : 4  // The week that contains Jan 4th is the first week of the year.
  }
};

export const zhCNConf = {
  months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
  monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
  weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
  weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
  longDateFormat : {
    LT : 'HH:mm',
    LTS : 'HH:mm:ss',
    L : 'YYYY/MM/DD',
    LL : 'YYYY年M月D日',
    LLL : 'YYYY年M月D日Ah点mm分',
    LLLL : 'YYYY年M月D日ddddAh点mm分',
    l : 'YYYY/M/D',
    ll : 'YYYY年M月D日',
    lll : 'YYYY年M月D日 HH:mm',
    llll : 'YYYY年M月D日dddd HH:mm'
  },
  meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
  meridiemHour: function (hour, meridiem) {
    if (hour === 12) {
      hour = 0;
    }
    if (meridiem === '凌晨' || meridiem === '早上' ||
      meridiem === '上午') {
      return hour;
    } else if (meridiem === '下午' || meridiem === '晚上') {
      return hour + 12;
    } else {
      // '中午'
      return hour >= 11 ? hour : hour + 12;
    }
  },
  meridiem : function (hour, minute, isLower) {
    var hm = hour * 100 + minute;
    if (hm < 600) {
      return '凌晨';
    } else if (hm < 900) {
      return '早上';
    } else if (hm < 1130) {
      return '上午';
    } else if (hm < 1230) {
      return '中午';
    } else if (hm < 1800) {
      return '下午';
    } else {
      return '晚上';
    }
  },
  calendar : {
    sameDay : '[今天]LT',
    nextDay : '[明天]LT',
    nextWeek : '[下]ddddLT',
    lastDay : '[昨天]LT',
    lastWeek : '[上]ddddLT',
    sameElse : 'L'
  },
  dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
  ordinal : function (number, period) {
    switch (period) {
      case 'd':
      case 'D':
      case 'DDD':
        return number + '日';
      case 'M':
        return number + '月';
      case 'w':
      case 'W':
        return number + '周';
      default:
        return number;
    }
  },
  relativeTime : {
    future : '%s内',
    past : '%s前',
    s : '几秒',
    ss : '%d 秒',
    m : '1 分钟',
    mm : '%d 分钟',
    h : '1 小时',
    hh : '%d 小时',
    d : '1 天',
    dd : '%d 天',
    M : '1 个月',
    MM : '%d 个月',
    y : '1 年',
    yy : '%d 年'
  },
  week : {
    // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
    dow : 1, // Monday is the first day of the week.
    doy : 4  // The week that contains Jan 4th is the first week of the year.
  }
};

export const jaConf = {
  months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
  weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
  weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
  longDateFormat : {
    LT : 'HH:mm',
    LTS : 'HH:mm:ss',
    L : 'YYYY/MM/DD',
    LL : 'YYYY年M月D日',
    LLL : 'YYYY年M月D日 HH:mm',
    LLLL : 'YYYY年M月D日 dddd HH:mm',
    l : 'YYYY/MM/DD',
    ll : 'YYYY年M月D日',
    lll : 'YYYY年M月D日 HH:mm',
    llll : 'YYYY年M月D日(ddd) HH:mm'
  },
  meridiemParse: /午前|午後/i,
  isPM : function (input) {
    return input === '午後';
  },
  meridiem : function (hour, minute, isLower) {
    if (hour < 12) {
      return '午前';
    } else {
      return '午後';
    }
  },
  calendar : {
    sameDay : '[今日] LT',
    nextDay : '[明日] LT',
    nextWeek : function (now) {
      if (now.week() < this.week()) {
        return '[来週]dddd LT';
      } else {
        return 'dddd LT';
      }
    },
    lastDay : '[昨日] LT',
    lastWeek : function (now) {
      if (this.week() < now.week()) {
        return '[先週]dddd LT';
      } else {
        return 'dddd LT';
      }
    },
    sameElse : 'L'
  },
  dayOfMonthOrdinalParse : /\d{1,2}日/,
  ordinal : function (number, period) {
    switch (period) {
      case 'd':
      case 'D':
      case 'DDD':
        return number + '日';
      default:
        return number;
    }
  },
  relativeTime : {
    future : '%s後',
    past : '%s前',
    s : '数秒',
    ss : '%d秒',
    m : '1分',
    mm : '%d分',
    h : '1時間',
    hh : '%d時間',
    d : '1日',
    dd : '%d日',
    M : '1ヶ月',
    MM : '%dヶ月',
    y : '1年',
    yy : '%d年'
  }
};

export const zhTWConf = {
  months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
  monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
  weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
  weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
  longDateFormat : {
    LT : 'HH:mm',
    LTS : 'HH:mm:ss',
    L : 'YYYY/MM/DD',
    LL : 'YYYY年M月D日',
    LLL : 'YYYY年M月D日 HH:mm',
    LLLL : 'YYYY年M月D日dddd HH:mm',
    l : 'YYYY/M/D',
    ll : 'YYYY年M月D日',
    lll : 'YYYY年M月D日 HH:mm',
    llll : 'YYYY年M月D日dddd HH:mm'
  },
  meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
  meridiemHour : function (hour, meridiem) {
    if (hour === 12) {
      hour = 0;
    }
    if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
      return hour;
    } else if (meridiem === '中午') {
      return hour >= 11 ? hour : hour + 12;
    } else if (meridiem === '下午' || meridiem === '晚上') {
      return hour + 12;
    }
  },
  meridiem : function (hour, minute, isLower) {
    var hm = hour * 100 + minute;
    if (hm < 600) {
      return '凌晨';
    } else if (hm < 900) {
      return '早上';
    } else if (hm < 1130) {
      return '上午';
    } else if (hm < 1230) {
      return '中午';
    } else if (hm < 1800) {
      return '下午';
    } else {
      return '晚上';
    }
  },
  calendar : {
    sameDay : '[今天] LT',
    nextDay : '[明天] LT',
    nextWeek : '[下]dddd LT',
    lastDay : '[昨天] LT',
    lastWeek : '[上]dddd LT',
    sameElse : 'L'
  },
  dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
  ordinal : function (number, period) {
    switch (period) {
      case 'd' :
      case 'D' :
      case 'DDD' :
        return number + '日';
      case 'M' :
        return number + '月';
      case 'w' :
      case 'W' :
        return number + '週';
      default :
        return number;
    }
  },
  relativeTime : {
    future : '%s內',
    past : '%s前',
    s : '幾秒',
    ss : '%d 秒',
    m : '1 分鐘',
    mm : '%d 分鐘',
    h : '1 小時',
    hh : '%d 小時',
    d : '1 天',
    dd : '%d 天',
    M : '1 個月',
    MM : '%d 個月',
    y : '1 年',
    yy : '%d 年'
  }
};

export const itITConf = {
  months : 'Gennaio_Febbraio_Marzo_Aprile_Maggio_Giugno_Luglio_Agosto_Settembre_Ottobre_Novembre_Dicembre'.split('_'),
  monthsShort : 'Gen_Feb_Mar_Apr_Mag_Giu_Lug_Ago_Set_Ott_Nov_Dic'.split('_'),
  weekdays : 'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'),
  weekdaysShort : 'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'),
  weekdaysMin : 'Do_Lu_Ma_Me_Gi_Ve_Sa'.split('_'),
  longDateFormat : {
    LT : 'HH:mm',
    LTS : 'HH:mm:ss',
    L : 'DD/MM/YYYY',
    LL : 'D MMMM YYYY',
    LLL : 'D MMMM YYYY HH:mm',
    LLLL : 'dddd D MMMM YYYY HH:mm'
  },
  calendar : {
    sameDay: '[Oggi alle] LT',
    nextDay: '[Domani alle] LT',
    nextWeek: 'dddd [alle] LT',
    lastDay: '[Ieri alle] LT',
    lastWeek: function () {
      switch (this.day()) {
        case 0:
          return '[la scorsa] dddd [alle] LT';
        default:
          return '[lo scorso] dddd [alle] LT';
      }
    },
    sameElse: 'L'
  },
  relativeTime : {
    future : function (s) {
      return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
    },
    past : '%s fa',
    s : 'alcuni secondi',
    ss : '%d secondi',
    m : 'un minuto',
    mm : '%d minuti',
    h : 'un\'ora',
    hh : '%d ore',
    d : 'un giorno',
    dd : '%d giorni',
    M : 'un mese',
    MM : '%d mesi',
    y : 'un anno',
    yy : '%d anni'
  },
  dayOfMonthOrdinalParse : /\d{1,2}º/,
  ordinal: '%dº',
  week : {
    dow : 1, // Monday is the first day of the week.
    doy : 4  // The week that contains Jan 4th is the first week of the year.
  }
};
